#!/usr/bin/env node

const fs = require('fs'),
      http = require('http'),
      path = require('path'),
      file = process.argv[2];

if(process.argv.length !== 3) {
    console.error('命令行参数格式：cmd fileName');
    process.exit(1);
}

try {
    // readFileSync是同步的，readFile是异步的
    var data = fs.readFileSync(file).toString('base64');

} catch(e) {
    console.error(e.message);
    process.exit(2);
}

let ext  = path.extname(file);
let uriData = 'data:image/' + ext.slice(1, ext.length) + ';base64,' + data;

console.log('data uri:\n%s', uriData);

let html = `
  <!DOCTYPE html>
  <html>
    <head>
      <title>base64 demo</title>
    </head>
    <body>
      <img alt="${path.basename(file, ext)}" src="${uriData}">
    </body>
  </html>`;

  http.createServer((req, res) => {
    console.log(req.headers);
    console.log(req.url + '\n');
    res.end(html);
  }).listen(8080);

// MIME Type
// qr-code.jpg => image/jpg
// book.png => image/png
// nodejs-logo.bmp => image/bmp
// 用path module的path.extname得到文件扩展名
// 然后拼接image得到MIME Type
